Workflow management systems are used to monitor an organization's various administrative and production processes. These processes are defined in terms of activities, links, routing controls, resources, initiators, terminators, and the input and output process data.
For a given process instance, the workflow management system might record information about the activities performed, when these activities are performed, time used to perform the activity, the identity of any resources involved in the activities, the outcome, and other data related to execution of the activities. This information is recorded as log data to permit subsequent reporting. Through various reporting tools the information is summarized and provided to analysts, workflow design, system administrator or other entities.
Typical workflow management systems permit users to query the execution state of a running process, report the number of process instances started or completed within a given time period, or compute simple statistics about groups of instances of a given process.
The workflow management system should be scalable to accommodate growth or shrinkage of the volume of work. In order to achieve scalability, some form of load balancing is required. Although a round robin scheduling system may be used, such a scheduling approach balances workload evenly only in homogeneous workflow management systems with uniform workload and resource capabilities. Such an approach fails to equitably balance the load across a heterogeneous collection of workflow management systems having different resources and capabilities.